package com.source.sys.service;

import com.source.sys.entity.Popedom;
import com.baomidou.mybatisplus.extension.service.IService;
import com.source.sys.vo.PopedomShowVo;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ZZF
 * @since 2021-02-08
 */
public interface PopedomService extends IService<Popedom> {
    /**
     * 添加权限信息，一般不用
     * @param popedom
     * @return
     */
    boolean addPopedom(Popedom popedom);

    /**
     * 获取子菜单
     * @param popedomId
     * @return
     */
    List<Popedom> getSonPopedom(String popedomId);

    /**
     * 获取第一级菜单
     * @return
     */
    List<Popedom> getFirstLevelPopedom();

    /**
     * 根据id获取popedom对象
     * @param popedomId
     * @return
     */
    Popedom getPopedomById(String popedomId);

//    /**
//     * 通过id修改权限信息
//     * @param popedomId
//     * @return
//     */
//    int updatePopedomInfoById(String popedomId);

    /**
     * 获取上级菜单
     * @param popedomId
     * @return
     */
    Popedom getPrePopedomById(String popedomId);

    /**
     * 根据权限名称获取第二级菜单
     * @param pname
     * @return
     */
    Popedom getSecondPopedomByName(String pname);

    /**
     * 根据角色id获取权限对象
     * @param roleId
     * @return
     */
    List<PopedomShowVo> getThirdPopedomListByRoleId(String roleId);

    /**
     * 通过角色id查询数据库是否存在指定请求方式和访问指定uri的权限(查询角色的权限)
     * @param roleId  角色id
     * @param uri uri
     * @param method 请求方式
     * @return
     */
    boolean checkUriAndMethodByRoleId(String roleId,String uri,String method);

}
